package com.whmall.service.crm.api;

import com.whmall.service.crm.entity.dto.company.SupplierAccountKeyFieldRspDTO;
import com.whmall.service.crm.entity.dto.company.SupplierAccountQueryReqDTO;

import java.util.List;
import java.util.Map;

/**
 * 银行账户API
 */
public interface SupplierAccountApi {

    /**
     * 根据id查询
     */
    SupplierAccountKeyFieldRspDTO queryById(long id);

    /**
     * 根据账户ID集合查询（通用）
     * @param ids
     * @return
     */
    Map<Long, SupplierAccountKeyFieldRspDTO> queryByIds(List<Long> ids);

    /**
     * 根据账号集合查询（通用）
     * @param accounts
     * @return
     */
    Map<String, List<SupplierAccountKeyFieldRspDTO>> queryByAccounts(List<String> accounts);

    /**
     * 根据公司ID集合查询（通用）
     * @param companyIds
     * @return
     */
    Map<Long, List<SupplierAccountKeyFieldRspDTO>> queryByCompanyIds(List<Long> companyIds);

    /**
     * 集合查询（通用）
     * @param queryReqDTO
     * @return
     */
    List<SupplierAccountKeyFieldRspDTO> queryBy(SupplierAccountQueryReqDTO queryReqDTO);

    /**
     * 根据账户名集合查询（通用）
     * @param accountNames
     * @return
     */
    Map<String, List<SupplierAccountKeyFieldRspDTO>> queryByAccountName(List<String> accountNames);

    /**
     * 获取默认账户
     * @param companyId 公司id
     * @return 默认账户
     */
    SupplierAccountKeyFieldRspDTO getDefaultAccount(Long companyId);

}
